Add General / Permissions / About panes to redesigned Settings#357
Closed
FuJacob wants to merge 3 commits into
Closed
Add General / Permissions / About panes to redesigned Settings#357FuJacob wants to merge 3 commits into
FuJacob wants to merge 3 commits into
Conversation
0a7dc0d to
fb8c68b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Second PR in the Settings sidebar-redesign stack. Replaces three of the placeholder panes with real implementations: General, Permissions, About. About also introduces an Acknowledgements sheet listing the third-party packages Cotabby ships with (llama.cpp, Sparkle, swift-log, CotabbyInference).
The legacy
SettingsViewis untouched; the feature flag from PR 1 still defaults to off, so end users see no change. With the flag flipped, these three panes are now functional.Stacked on
feat/settings-redesign-scaffold.Validation
xcodegen generate+xcodebuild -project Cotabby.xcodeproj -scheme Cotabby -destination 'platform=macOS' build CODE_SIGNING_ALLOWED=NO→
** BUILD SUCCEEDED **swiftlint lint --quiet→ no violations.Manual: with the redesign flag on, walk through each pane. General should exercise every toggle plus the ghost-color swatches and opacity slider; Permissions should reflect grant state and offer the Open Settings shortcuts; About should show the version, Check for Updates, the Support link, the GitHub / Wiki / Acknowledgements links, and the uninstall text.
Linked issues
(none filed)
Risk / rollout notes
SettingsViewsections; bindings and tooltip copy were lifted verbatim. Visual change is the scaffolding around them (per-paneForm, optional callout slot) rather than the controls themselves.Greptile Summary
Adds three fully-implemented Settings panes (General, Permissions, About) to the redesigned sidebar-based Settings window, replacing their placeholder counterparts. The feature-flag-off default means end users see no change; behavior for each control is intentionally identical to the legacy
SettingsViewsections.Bindingwrappers that delegate toSuggestionSettingsModel's existing setter API..onAppearwith.onChange(of: scenePhase).AcknowledgementsViewsheet lists the four third-party packages shipped with the app.Confidence Score: 5/5
Safe to merge — all changes are behind the existing feature flag, no persisted settings or model properties are altered, and the two issues flagged in the previous review have both been addressed.
The three pane implementations are purely additive UI, the bindings delegate to the same setter API already exercised by the legacy view, and the URL construction is now consistently guarded with if let throughout. No behavioral regression is possible while the feature flag remains off.
No files require special attention.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD SCV["SettingsContainerView\n(NavigationSplitView)"] SCV -->|".general"| GPV["GeneralPaneView\n(SuggestionSettingsModel)"] SCV -->|".permissions"| PPV["PermissionsPaneView\n(PermissionManager)"] SCV -->|".about"| APV["AboutPaneView\n(AppUpdateManager)"] SCV -->|"other cases"| PLV["PlaceholderPaneView"] GPV --> SPS1["SettingsPaneScaffold\n(no callout)"] PPV --> SPS2["SettingsPaneScaffold\n(callout when perms missing)"] APV --> SPS3["SettingsPaneScaffold\n(no callout)"] APV -->|"sheet"| AKV["AcknowledgementsView\n(modal sheet)"] PPV -->|"onAppear + onChange(scenePhase)"| PM["PermissionManager.refresh()"]Reviews (2): Last reviewed commit: "Address Greptile feedback: scene-active ..." | Re-trigger Greptile